<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

     /**
      * 给你一个整数 x ，返回将 x 中的数字部分反转后的结果。
        如果反转后整数超过整数的范围 [−2^31,  2^31 − 1] ，就返回 0。
     */

     function reverseInt (num) { // 123
        /**
         * 思路1：
         * 把num的绝对值变成字符串
         * 把字符串变成数组
         * 反转数组
         * 把反转后的数组变回字符串 *
         * 把字符串变回数字
         * 把正负号加回来
        */
        /**
         * 思路2：
         * 把num的绝对值变成字符串 '123'
         * 倒着循环字符串 
         * 把每一个字母拼接在新的字符串上 '321'
         * 把字符串变回数字 321
         * 把正负号加回来
        */
        const numStr = String(Math.abs(num)); // '123'
        const numArr = numStr.split(''); // ['1', '2', '3'] 
        const reservedNumArr = numArr.reverse(); // ['3', '2', '1'] 
        const reservedNumStr = reservedNumArr.join(''); // '321'
        const reservedNum = Number(reservedNumStr); // 321
        const result = num >= 0 ? reservedNum : -reservedNum;
        const max = Math.pow(2, 31) - 1;
        const min = -Math.pow(2, 31);
        if (result > max || result < min) {
            return 0;
        }
        return result;
     }

     console.log( reverseInt(123) ); // 321
     console.log( reverseInt(-123) ); // -321
     console.log( reverseInt(124792137413741279382123123) ); // 0

    </script>
</body>
</html>